import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';

import 'http.dart';
import 'permission_service.dart';
import 'route_service.dart';
import 'theme_service.dart';
import 'user_service.dart';
import 'alipay_service.dart';
import 'rongcloud_service.dart';
import 'amap_location_service.dart';
import 'notification_service.dart';
import 'app_lifecycle_service.dart'; // 🔥 导入App生命周期服务
import 'notification_manager.dart'; // 🔥 导入通知管理器
import 'native_wechat_share_service.dart'; // 🔥 导入原生微信分享服务
import '../utils/permission_util.dart'; // 🎯 权限计算工具

/// 全局服务
class Global {
  /// 初始化服务
  static Future<void> init() async {
    // 初始化 GetStorage
    await GetStorage.init();
    
    // 注册主题服务
    await Get.putAsync<ThemeService>(() async => ThemeService());
    
    // 注册HTTP服务
    await Get.putAsync<HttpService>(() async => HttpService());
    
    // 注册路由服务
    await Get.putAsync<RouteService>(() async => RouteService());
    
    // 注册权限服务
    await Get.putAsync<PermissionService>(() async => PermissionService());
    
    // 🔥 注册App生命周期服务（优先初始化，其他服务可能依赖它）
    await Get.putAsync<AppLifecycleService>(() async => AppLifecycleService());
    
    // 注册用户服务
    await Get.putAsync<UserService>(() async => UserService());
    
    // 🎯 初始化权限系统（模仿MyApplication2的权限逻辑）
    PermissionUtil.initializePermissions();
    
    // 注册支付宝服务
    await Get.putAsync<AlipayService>(() async => AlipayService());
    
    // 🔥 注册原生微信分享服务
    await Get.putAsync<NativeWeChatShareService>(() async => NativeWeChatShareService());
    
    // 注册融云服务
    await Get.putAsync<RongCloudService>(() async => RongCloudService());
    
    // 注册本地通知服务（解决MissingPluginException问题）
    await Get.putAsync<NotificationService>(() async => NotificationService());
    
    // 注册高德定位服务（与MyApplication2相同技术）
    await Get.putAsync<AmapLocationService>(() async => AmapLocationService());
    
    // 🔥 注册通知管理器（统一管理各页面通知状态）
    await Get.putAsync<NotificationManager>(() async => NotificationManager());
    
    // 🔔 极光推送服务配置
    // 🔥 极光推送功能已集成在NotificationService中
    // 使用集成架构，通知功能统一管理，配置简洁高效
  }
} 